﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using NCI.EasyObjects;
using System.Data.Common;
using Microsoft.Practices.EnterpriseLibrary.Data;
using CMS.BLL.Entity;
using CMS.DAL;

namespace CMS.BLL
{
    public class Testimonial
    {
        #region Common
        public eTestimonial Data;

        public Testimonial()
        {
            Data = new eTestimonial();
        }

        ~Testimonial()
        {
        }

        public virtual void Dispose()
        {
        }

        public int DeleteById(int ID)
        {
            int nResult = 0;
            cTestimonial objDAL = new cTestimonial();
            try
            {
                objDAL.LoadByPrimaryKey(ID);
                objDAL.MarkAsDeleted();
                objDAL.Save();
                nResult = ID;
            }
            catch
            {
                nResult = 0;
            }
            return nResult;
        }
        private void MappingData(cTestimonial objInfor)
        {
            try { objInfor.Image = Data.Image; }
            catch { objInfor.Image = ""; }
            try { objInfor.Status = Data.Status; }
            catch { objInfor.Status = 0; }
            try { objInfor.TestimonialContent = Data.TestimonialContent; }
            catch { objInfor.TestimonialContent = ""; }
            try { objInfor.Title = Data.Title; }
            catch { objInfor.Title = ""; }
        }
        private void ConvertData(cTestimonial objInfor)
        {
            try { Data.Image = objInfor.Image; }
            catch { Data.Image = ""; }
            try { Data.Status = objInfor.Status; }
            catch { Data.Status = 0; }
            try { Data.TestimonialContent = objInfor.TestimonialContent; }
            catch { Data.TestimonialContent = ""; }
            try { Data.Title = objInfor.Title; }
            catch { Data.Title = ""; }
        }
        public void LoadById(int ID)
        {
            cTestimonial objDAL = new cTestimonial();
            objDAL.LoadByPrimaryKey(ID);
            ConvertData(objDAL);
        }

        public int Insert()
        {
            int nResult = 0;
            cTestimonial objInfor = new cTestimonial();
            try
            {
                objInfor.AddNew();
                MappingData(objInfor);
                objInfor.Save();
                nResult = objInfor.TestimonialID;
            }
            catch
            {
                nResult = 0;
            }
            return nResult;
        }
        //Update nhung cai ma eTestimonial Data dang nam giu thong qua cTestimonial objInfor
        public int Update(int ID)
        {
            int nResult = 0;
            cTestimonial objInfor = new cTestimonial();
            try
            {
                objInfor.LoadByPrimaryKey(ID);
                this.MappingData(objInfor);
                objInfor.Save();
                nResult = ID;
            }
            catch
            {
                nResult = 0;
            }
            return nResult;
        }
        public int UpdateStatus(int ID, int Status)
        {
            int nResult = 0;
            cTestimonial objDAL = new cTestimonial();
            try
            {
                objDAL.LoadByPrimaryKey(ID);
                objDAL.Status = Status;

                objDAL.Save();
                nResult = objDAL.TestimonialID;
            }
            catch
            {
                nResult = 0;
            }
            return nResult;
        }
        public DataTable GetAll()
        {
            DataTable tbResult = new DataTable();
            cTestimonial objDAL = new cTestimonial();
            tbResult = objDAL.GetAll();
            return tbResult;
        }
        public DataTable Search(int PageIndex, int PageSize, ref int PageCount)
        {
            DataTable tbResult = new DataTable();
            cTestimonial objDAL = new cTestimonial();
            tbResult = objDAL.Search(PageIndex, PageSize, ref  PageCount);
            return tbResult;
        }
        #endregion
    }
}
